Enterprises are increasingly moving computer operations from on-premises systems to the cloud. Public clouds relieve their subscribers of the responsibility for hardware maintenance, while simplifying management tasks such as scaling a distributed application in or out. Private clouds can offer the management simplicity of public clouds, while offering the security associated with maintaining the underlying hardware on premises, as may be required to comply with some laws and regulations.
As each cloud service offers unique advantages, it often makes sense to distribute enterprise applications across cloud services. As suggested above, it may be a requirement to run some components, e.g., medical records keeping, on a private cloud, while other components, e.g., advertising, on a public cloud to minimize the amount of hardware maintenance involved. Also, it may be cost effective to run some components on one public cloud and others on another public cloud, as each public cloud has its own pricing plans.